1. The Field of the Invention
The present invention relates to the field of data access. Specifically, the present invention relates to methods, systems, and computer program products for accessing data where the data store provider is abstracted from the data manipulation language used to access the data.
2. Background and Related Art
Because it provides significant flexibility in exchanging data between computer systems, eXtensible Markup Language (“XML”) continues to grow in popularity. At least in part, XML's flexibility is achieved through tags or markups that define data elements and attributes. To define semantically meaningful data relationships, XML tags may be arranged in a hierarchical schema with an indicator for the number of data elements to expect at various levels within the schema. For example, it is common for a schema to dictate that at a particular level, a given data element is expected exactly once, zero or once, zero or more times, etc.
Storage mechanisms for data defined by hierarchical schemas may take a variety of forms and are not necessarily specific or native to the underlying hierarchical schema. Although native storage mechanisms typically offer performance, design, and other benefits, there are often significant resource requirements for supporting multiple native storage mechanisms. For example, relational database management systems (“RDBMSs”) supporting Structured Query Language (“SQL”) are commonplace in many organizations. As a result, RDBMSs are likely to make use of existing hardware, software, support and administration personnel, design expertise, etc., whereas introducing some other storage mechanism is more likely to require additional hardware, software, training, and personnel. RDBMSs also represent a relatively mature and stable technology, offering excellent performance and scalability. Accordingly, using an RDBMS is attractive even if it lacks native support for some external aspects of a particular hierarchical model. Of course, other storage implementations may offer other benefits.
In order to obtain the benefits of each, some applications may combine the storage benefits of a given storage implementation with the communication benefits of XML. One of the problems typically encountered in combining diverse technologies is the potential for introducing interdependencies such that changes in one technology require corresponding changes in the other technology. Closely bound technologies also tend to limit the ability to select the most appropriate technology for a given application or organization. For example, a specialized technology that performs particularly well in a given situation may be overlooked in favor of a more generalized technology that performs better on average, and/or an organization may be unable to leverage existing resources that for whatever reason are not supported.
More generally, similar interdependency problems may be encountered when using an XML data manipulation language with any data store provider. RDBMSs supporting SQL are merely one example of data stores that are currently in wide-spread use. For any particular XML data manipulation language used for communication there are numerous corresponding options for a store provider, including many RDBMS implementations. Accordingly, methods, systems, and computer program products for accessing data where the data store provider is abstracted from the XML data manipulation language used to access the data are desired.